#include "threads_Semaphores.h"

/*De este codigo se testeo la creacion de atributos, del thread y su cierre. Falta 
la parte del join. La funcionThread es dependiente de lo que cada proceso necesite por
lo cual esta definida pero en blanco.*/

/*______________________________________________________________________________________*/

int crearAtributoTamanio(pthread_attr_t* atributos){

	int tamanioStack;
	int resultado;


	tamanioStack = (PTHREAD_STACK_MIN + unKB);
	pthread_attr_init(atributos);
	resultado = pthread_attr_setstacksize(atributos, tamanioStack);

	if(resultado != 0){
		printf("Fallo pthread_attr_setstacksize()");

		return 1;
	}
	else
		return 0;

}

/*______________________________________________________________________________________*/

int crearThread(pthread_t* nuevoThread,pthread_attr_t atributos){

	int resultado;

	resultado = pthread_create(nuevoThread,&atributos,&funcionThread,NULL);

	if(resultado != 0){
	printf("Fallo pthread_create()");
	return 1;
	}
	else
		return 0;
}

/*______________________________________________________________________________________*/

void* funcionThread(void*parametro){

	/*Introduzcan codigo*/
   
	return 0;
}

/*______________________________________________________________________________________*/

int ponerEnEspera(pthread_t nuevoThread){

	int resultado;

	resultado = pthread_join(nuevoThread,NULL);

	if(resultado != 0){
	printf("Fallo pthread_join()");
	return 1;
	}
	else
		return 0;

}

/*______________________________________________________________________________________*/

void cerrarThread(pthread_t* nuevoThread){

	pthread_exit(nuevoThread); //lo agrego para el log

}

/*______________________________________________________________________________________*/
